<?php

/**
 * ECSHOP 支付宝插件
 * ============================================================================
 * * 版权所有 2005-2012 上海商派网络科技有限公司，并保留所有权利。
 * 网站地址: http://www.ecshop.com；
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用；不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: liubo $
 * $Id: alipay_mobile.php 17217 2011-01-19 06:29:08Z liubo $
 */

if (!defined('IN_ECTOUCH'))
{
    die('Hacking attempt');
}

$payment_lang = ROOT_PATH . 'lang/' .$GLOBALS['_CFG']['lang']. '/payment/alipay_mobile.php';


if (file_exists($payment_lang))
{
    global $_LANG;

    include_once($payment_lang);
}

/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{
    $i = isset($modules) ? count($modules) : 0;
    /* 代码 */
    $modules[$i]['code']    = basename(__FILE__, '.php');
    /* 描述对应的语言项 */
    $modules[$i]['desc']    = 'alipay_mobile_desc';
    /* 是否支持货到付款 */
    $modules[$i]['is_cod']  = '0';
    /* 是否支持在线支付 */
    $modules[$i]['is_online']  = '1';
    /* 作者 */
    $modules[$i]['author']  = 'TEAM';
    /* 网址 */
    $modules[$i]['website'] = 'http://www.alipay.com';
    /* 版本号 */
    $modules[$i]['version'] = '1.0.2';
    /* 配置信息 */
    $modules[$i]['config']  = array(
        array('name' => 'alipay_mobile_account',           'type' => 'text',   'value' => ''),
        array('name' => 'alipay_mobile_key',               'type' => 'text',   'value' => ''),
        array('name' => 'alipay_mobile_partner',           'type' => 'text',   'value' => ''),
/*        array('name' => 'alipay_mobile_pay_method',        'type' => 'select', 'value' => '')
*/    );
    return;
}

/**
 * 类
 */
class alipay_mobile
{

    /**
     * 构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function alipay_mobile()
    {
		
    }

    function __construct()
    {
        $this->alipay_mobile();
    }

    /**
     * 生成支付代码
     * @param   array   $order      订单信息
     * @param   array   $payment    支付方式信息
     */
    function get_code($order, $payment)
    {
		$button = '<div><input type="button" onclick="window.open(\''.$GLOBALS['ecs']->url().'alipayapi.php?order_sn='.$order['order_sn'].'&log_id='.$order['log_id'].'\')" value="立即付款" /></div>';
        return $button;
    }

    /**
     * 响应操作
     */
    function respond()
    {
        
		if (!defined('EC_CHARSET'))
        {
            $charset = 'utf-8';
        }
        else
        {
            $charset = EC_CHARSET;
        }
		$payment  = get_payment('alipay_mobile');       
	    
		
		//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
		//合作身份者id，以2088开头的16位纯数字
		$alipay_config['partner']		= $payment['alipay_mobile_partner'];
		//安全检验码，以数字和字母组成的32位字符
		//如果签名方式设置为"MD5"时，请设置该参数
		$alipay_config['key']			= $payment['alipay_mobile_key'];
		//商户的私钥（后缀是.pen）文件相对路径
		//如果签名方式设置为"0001"时，请设置该参数
		$alipay_config['private_key_path']	= ROOT_PATH.'includes/modules/payment/alipay_mobile/key/rsa_private_key.pem';
		//支付宝公钥（后缀是.pen）文件相对路径
		//如果签名方式设置为"0001"时，请设置该参数
		$alipay_config['ali_public_key_path']= ROOT_PATH.'includes/modules/payment/alipay_mobile/key/alipay_public_key.pem';
		//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
		//签名方式 不需修改
		$alipay_config['sign_type']    = 'MD5';
		//字符编码格式 目前支持 gbk 或 utf-8
		$alipay_config['input_charset']= $charset;
		//ca证书路径地址，用于curl中ssl校验
		//请保证cacert.pem文件在当前文件夹目录中
		$alipay_config['cacert']    = getcwd().'\\cacert.pem';
	
		//访问模式,根据自己的服务器是否支持ssl访问，若支持请选择https；若不支持请选择http
		$alipay_config['transport']    = 'http';
		
		$alipayNotify = new AlipayNotify($alipay_config);
        $verify_result = $alipayNotify->verifyReturn();
		if($verify_result)
		 {//验证成功*/
				
				if (!empty($_POST))
				{
					foreach($_POST as $key => $data)
					{
						$_GET[$key] = $data;
					}
				}
				
				$seller_email = rawurldecode($_GET['seller_email']);
				$order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']);
				$order_sn = trim($order_sn);
		
				if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS')
				{
					/* 改变订单状态 */
					order_paid($order_sn, 2);
					return true;
				}
				elseif ($_GET['trade_status'] == 'TRADE_FINISHED')
				{
					/* 改变订单状态 */
					order_paid($order_sn);
					return true;
				}
				elseif ($_GET['trade_status'] == 'TRADE_SUCCESS')
				{
					/* 改变订单状态 */
					order_paid($order_sn, 2);
					return true;
				}
				else
				{
					return false;
				}
		}
		else 
		{
			  //验证失败
			  //如要调试，请看alipay_notify.php页面的verifyReturn函数，比对sign和mysign的值是否相等，或者检查$responseTxt有没有返回true
			  return false;
		 }
    }
}

?>